Node* insert(Node* head, int insertVal) {
        Node *node = new Node(insertVal);
        if(!head)
        {
            node->next = node;
            return node;
        }

        if(head->next == head)
        {
            head->next = node;
            node->next = head;
            return head;
        }

        Node *cur = head, *next = head->next;
        while(next != head)
        {
            if(insertVal >= cur->val && insertVal <= next->val) break;
            if(cur->val > next->val)
            {
                if(insertVal > cur->val || insertVal < next->val) break;
            }
            cur = cur->next;
            next = next->next;
        }
        cur->next = node;
        node->next = next;
        return head;
    }